perm filename ARPA.XX0[DOC,TOB] blob sn#017457 filedate 1972-12-19 generic text, type T, neo UTF8
During the past several years our  vision  effort  has  shifted  from
simple scenes of polyhedra to complex objects in richer context.  Not
all problems with towers of polyhedra have been solved, but there are
a  host  of  reasons  for moving on.  Manipulation has also proceeded
from manipulation of blocks to assembly operations for  many  of  the
same  reasons.    Minsky and Papert have described the central issues
and the intellectual position of robotics in artificial intelligence.
We refer to that discussion as background to our motivation to direct
research to real world scenes and objects.  An  important  motivation
is  to  develop  applications  for  manipulation  and visual feedback
capabilities which have been developed here.  The time is  ready  for
the   first  transfer  of  robotics  technology  from  laboratory  to
prototype assembly stations. We discuss  robotics  applications  more
fully in another section.

Another  major  motivation is to face new issues; systems have come a
few  steps  toward  heterarchical  systems  from  heirarchy;  from  a
succession  of homogeneous passes with compounding errors to a system
structure where high and low levels interact closely.  One aspect  of
such a system is the use of many functionally independent techniques;
this has meant including  experimentation  with  color  and  texture,
depth  information, motion parallax and image prediction.  The choice
of problems as paradigms is central to the way  in  which  perceptual
systems  evolve.     A  great  deal can be done with simple scenes of
polyhedra using a single image  in  one  color,  ignoring  all  other
perceptual abilities.  Since most perceptual problems can be resolved
within  a  single  image,  one   approach   is   to   exhaust   those
possibilities.     Important  areas  are  missed; for example, visual
feedback is clumsy without depth information.   For our plans, visual
feedback for manipulation is primary.

There  are  other  ways  in  which  the  tower  of blocks paradigm is
inadequate  for  our  purposes.     Low  level  feature   description
operators   are   tailored   for  this  case.   Adequate  region  and
edge-oriented descriptors must be  evolved.    With  polyhedra,  only
simple  preliminary  grouping  mechanisms have been programmed.  More
intermediate level descriptors must be implemented.

Although real world scenes are much more  complicated,  they  may  be
simpler  to  perceive in that they have a much richer context.  There
is only very general knowledge available in the  usual  blocks  task;
usually  color,  size,  and  support are unspecified.  In an assembly
task, sizes are known, color is  used  to  code,  and  parts  fit  in
special  ways.    Often  recognition  can be based on obvious special
features.  These tasks are good exercise in developing  goal-oriented
visual  systems.  Although development and utilization of intelligent
robots will progress gradually, the information sciences will  impact
industry  enormously  over  a shorter term. An immediate effect is to
streamline information flow in the  manufacturing  process.    Simple
systems  can keep track of delayed effects of design decisions, lower
cost of preparation and  transmission,  and  increase  accessibility.
Computer    controlled    scheduling,    resource   allocation,   and
transportation routing are important to most of industrial production
[Anderson  1972].  We  see a major contribution from techniques being
pioneered in artificial  intelligence  laboratories,  and  that  such
research  will  have  payoff  throughout  the  entire  development of
intelligent systems. Enormous efficiency  increases  will  come  from
analysis  of  assembly  and  inspection  in  terms of some "primitive
operations".   In the past, computer cost and lack of  sophistication
has  limited  the  ability  for  such  analysis, and the slow pace of
automation has not  pressed  hard  for  analysis.   Now  it  will  be
possible   to   find   common  fabrication  and  assembly  operations
throughout a large company, to discover  commonality  in  design  and
components.  The success of that analysis depends upon representation
of fabrication operations and  shape.  Representation  is  a  current
concern  in  robotics  labs  and  may  have  early applications. This
orientation to the manufacturing system is already beginning to  have
effect  with  the  "group  technology"  approach,  which  attempts to
describe parts and operations, and group them together in one part of
the   factory.    Until   the  establishment  of  such  analysis  and
commonality  of  operations,  automating  will  be  made  much   more
difficult.

Considerations are similar for programming automation devices such as
the assembly station we describe.  Even if programming is  difficult,
there  will  be  considerable  applications  for  dexterous  assembly
systems. For example, for the military, it is preferable to stockpile
programs than to stockpile parts or systems for contingency. In batch
production, tapes can be saved to cut stockpiling.   But  to  achieve
full  effect  on  industry, robot systems must be easy to program for
new tasks.  Our current work is concerned  with  strategy  generation
and   automating  visual  feedback.   Time-sharing  systems  will  be
necessary  to  perform  scheduling,  resource   allocation,   routing
operations,  etc.   Thus there is a natural division of labor between
the time-sharing system and small machines. The strategy  generation,
automating   feedback,  and  interactive  system  for  computer-aided
mechanical design expect to reside in the central system.

A major part of our effort is directed toward the  representation  of
complex  shapes,  for  use  in vision and strategies.  While it might
seem that this effort has only distant applications, for the  reasons
discussed   above,   early   applications   will  be  for  convenient
man/machine   interaction   for   programming    robots    and    for
systematization.   We can expect that in general, much of the work in
symbolic representation of the real world  will  have  early  payoff.
Present  non-intelligent  robots  are programmed by specifying points
along a  path  to  be  repeated.   With  computer  control,  optional
trajectories  can  be  executed in case of contingency.  The engineer
must then specify what normal function is, how to monitor it, and how
to  recognize recoverable situations.   To do so, he can specify this
symbolically in interaction with a  program  in  which  he  specifies
normal  and abnormal conditions, shape of parts (usually some variant
of standard parts), the mating of parts for assembly,  and  schematic
descriptions   of   operations  for  insertion  and  inspection.  The
significance of representations in general is to aid these processes.
Our representation provides a natural way of speaking about the shape
of objects, in terms of a structured description of  part/whole  with
primitives  which  resemble many fabrication operations.   The better
the representation, the more it provides intuition for programs as to
the intent of operations and the function of parts.

A  representation  aids communication in both directions.  We contend
that our representation is important  for  computer  graphics.   This
allows  display  of  the  machines  concepts  to the user, and allows
greater use of predictive mechanisms based on internal models.  Input
could  be made visually with a depth measuring system such as we have
been using for the last two years.  Since the operation would be done
on  a central facility, the computer would be adequate for this task.
We expect that the representation will  be  of  considerable  use  in
monocular  vision  also.   We hope to substantiate these predictions.
Another application is  automating  design  of  numerically  machined
parts.   That  will  be simplified to the extent that the machine and
the user speak the same language of subparts and their  descriptions.
Benefits  would  come  from  ease  of  programming  and  interaction,
variable  tolerances  for  critical  parts  and   better   monitoring
operations.

	THE PILOT ASSEMBLY STATION

We  are beginning to apply robotics techniques to industrial assembly
and inspection.   We  will  implement  over  the  next  few  years  a
prototype  assembly  station and a support system for programming the
assembly station for its tasks.

The assembly station is assumed to be normally connected to  a  large
time-shared computer facility. Not only does this appear to be a good
design for our problem, but it is also necessary  for  an  integrated
programmed automation facility.  The only emphasized statement in the
ARPA study report  [Anderson  1972]  is:    "The  maximum  impact  of
computers   in  manufacturing  will  come  from  complete,  real-time
computer cognizance and  control  of  all  processes  and  resources,
allowing the precise scheduling and allocation of these resources."

Each  assembly  station will consist of a small digital computer, one
or more manipulators and cameras. Manipulators and  cameras  will  be
combined  as  modules  in  systems  to suit a given task, and will be
digitally controlled by the station computer.

The program in the station computer will be flexible as to the number
and  position of manipulators and cameras. It will control input from
the cameras, provide for some pre-processing of the picture  and  the
application  of  simple  tests to the visual data.     In the case of
manipulators it will provide for simultaneous servo control. It  will
also  process  other  inputs,  such  as  from  touch  sensors  on the
manipulators, from photocell interrupt devices, limit switches,  etc.
Both  analog  and binary outputs will be available for the control of
other devices.

Each station computer will have access to a task  program  specifying
the actions and tests it should perform to carry out its task.   This
task program will be compiled by the central computer.    Compilation
will  consist of the analysis of predicted scenes in order to specify
simple tests that the station computer can carry out, the calculation
of  collision free trajectories for the manipulators, the sequence of
operations and simple contingency plans. etc.  We  are  planning  for
tasks   whose  normal  execution  does  not  require  detailed  scene
analysis.  If scene analysis becomes necessary (e.g. a dropped  part)
we  envision the station sending an image to the central computer for
processing.

The central computer will perform overall control of  the  individual
assembly  stations  and the relative rates of production.   If at any
station a planned test fails, for which a contingency plan  does  not
exist,  or  any  unexpected  sensor signals are received, the central
computer will also be interrupted and appropriate actions taken.

Most of the hardware required  for  the  assembly  station  has  been
developed  for  the  laboratory.   Manipulators  and  cameras will be
discussed in detail below. The major additional problem is to  refine
the   existing   designs   to  meet  the  demands  of  an  industrial
environment.

The most difficult part of the assembly station, and the heart of the
of the proposal is a demonstration of the feasibility of the station.
We plan to do this by developing programs which actually assemble and
inspect a variety of fairly complex manufactured items.

A  typical  example is our current project, assembly of an automobile
water pump. The major  parts  are  to  be  located,  the  screws  are
supplied by a feeder, as is standard.  Locating the body and cover of
the pump require a gross localization, then a  fine  localization  of
screw  holes.     Touch  provides  a  final  accuracy and independent
coordination of the hand.   The  placing  of  alignment  pins  within
screw  holes  could  be monitored visually; although in this case,the
previous actions provide adequate accuracy.   Placing  of  the  cover
over  alignment  pins  can  be  carried out without vision.  Improved
force  sensing  now  under  development  will  be  useful  for   that
operation.

As  we move to more difficult tasks, the sophistication required goes
up quite rapidly.  The  current  manipulation  routines  seem  to  be
expandable  to cover anticipated problems, especially since we intend
to employ special purpose manipulators (tools) for some tasks.    The
main part of our effort will be vision for assembly; an assembly task
will be performed using vision, touch, and two hands.     The  vision
effort  will  be  integrated with other abilities, and while no great
generality will be stressed, new modules will  be  incorporated  into
the  system,  and a set of techniques will evolve.  These will depend
heavily on techniques similar to  those  of  our  recent  studies  in
visual  feedback  and hand/eye coordination [Gill 1972]. The internal
model of the world will be  used  to  predict  visual  appearance  of
selected  areas  of  the  scene, and a set of verification procedures
will confirm or contradict the predictions.  Many of  the  operations
will  be  connected  with  supplying  feedback  to  manipulation, for
alignment and insertion. These visual procedures will have models for
the parts and approximate locations.
This and other visual tasks connected with assembly will initially be
This and other visual tasks connected with assembly will initially be
performed as special case problems.    In  addition,  to  make  these
techniques   available,   we  will  pursue  development  of  strategy
programs.  This step is essential if intelligent assembly devices are
to  be conveniently programmed for complex tasks. Within the division
of labor between large and small machines, this facility must  reside
in  the  central  time-sharing  facility which has large memory, file
storage, and problem-solving languages. The system must have a  model
of  the  parts  for  assembly,and  a  sequence  of  instructions  for
assembly. It will be necessary to have a representation of shape  and
models for usual assembly operations such as insertion and alignment,
and the ability to solve simple problems  in  connection  with  these
operations,  all  this  to  enable  convenient communication with the
user. When these facilities exist, the addition of new  features  and
operations  can be incorporated smoothly, so that users can call on a
growing library of planning modules.  The result of a planning effort
is  a  cycle  of  machine  planning and man-machine interaction which
results in a plan  network  for  the  mini  computer  which  controls
individual machines.
	RESEARCH IN VISION

Our past work on visual feedback [Gill 1972] in stacking objects  and
inserting  objects  in  holes  is  directly  relevant  to  vision for
assembly.  The system provides feedback for picking up, then  at  the
final  position,  with  the hand still holding the block and in view,
predicts the appearance of edges and corners within  a  small  window
around  the  faces  to  be  aligned, and uses a corner/edge finder to
determine alignment error. Incremental motion capability of  the  arm
is   used   for   error  correction.         That  work  incorporates
self-calibration to coordinate hand and eye  coordinate  systems  and
provide  for  reliability,  as  well as to limit search by accurately
predicting expected features. Two well-developed systems exist to aid
future  work  in  visual  feedback.    GEOMED  [Baumgart  1972a] is a
geometric editor which allows  the  input  of  geometric  models  and
manipulation  of  these  models.  OCCULT [Baumgart 1972b] is a hidden
line elimination program which gives a symbolic output, valuable  for
vision, in a few seconds.

We  have  a  set  of  visual operations which provide confirmation of
predictions and direct interaction  with  the  visual  image.     For
outdoor  scenes,  color is an important basis for region forming, and
for preliminary scene organization. Several preliminary color  region
analysis  programs  have been developed [Binford, unpublished, Bajcsy
1972].   These will be extended as described below. An edge  operator
[Hueckel 1969,1972] and a region-based corner/edge finder [Gill 1972]
both operate on small windows of the scene, as directed by  a  higher
level.     An  edge  verifier  is  used  to  confirm  or reject edges
predicted from context [Tenenbaum 1970].   Color  identification  has
long  been  demonstrated.   Recently,  a program has been implemented
based on Land's Retinex model of color constancy  in  vision.    This
involves  taking  intensity measurements with the camera through red,
green, and blue filter, and setting up a calibration scheme  for  the
Goethe  color  triangle in the absence of any external color standard
(white).  This is achieved by normalizing the intensities of  regions
within  the  scene through each filter, and defining a color triangle
derived from this ordering data, with  the  center  of  the  triangle
designated  as  white. The regions may then be assigne color names in
the normal way.  The program as it stands can  cope  reasonably  well
with  table  top  scenes under varied lighting conditions - sunlight,
quartz-halogen and flourescent, and therefore shows the same kind  of
color constancy as do humans.

We  have  directed part of our work to analysis of outdoor scenes and
to  techniques  which  are   especially   important   for   planetary
exploration  and  the automatic driver.  Outdoor scenes were analyzed
with a combination of  color  and  texture  region  analysis  [Bajcsy
1972];  depth  cues  were  taken  from  the  gradient  of texture.  A
symbolic representation of texture and of  the  world  were  adopted;
descriptors of texture elements were obtained as analytic expressions
from the Fourier spectrum.  A considerable improvement could be  made
by  combining  these  techniques with several techniques which obtain
depth  information  from  correlation  of  images.   Motion  parallax
[Nevatia  draft]  has  been  used  with  a succession of images.  The
successive images differ little from  one  another  and  allow  local
correlation  without  ambiguity.    In  a  sense,  this  combines the
advantages of narrow and wide angle stereo, since stereo ambiguity is
avoided, while large baselines can be accumulated by tracking regions
over several images. Another system incorporates  several  facilities
in  wide  angle  stereo  [Hannah, Quam]; local statistics are used to
limit search for correspondence of small areas in  two  images.    An
interesting  feature  is  self-orientation:   given two cameras whose
orientation is unknow, the system uses guided search to  establish  a
few  correspondences, then determines the relative orientation of the
two cameras.  Such self-orientation and  self-calibration  facilities
have  considerable  significance  for industrial systems which can be
maintained  calibrated.    These  are  complementary  depth   sensing
techniques;  motion  parallax  can  be  used  for  planning paths and
characterizing large scale terrain features.  Two  camera  stereo  is
important  for  local  manipulation  and  disaster avoidance.  Visual
feedback with stereo vision is much more powerful than without.    We
have   a  program  which  has  demonstrated  stereo  visual  feedback
[Binford, unpublished].

A  thesis  by  Agin  [Agin  1972]  showed  considerable  progress  in
representation  and description of complex objects.  He implemented a
laser ranging device [Binford 1970] which was operational  two  years
ago.    Using depth data and a representation of shape [Binford 1971]
which we have developed, we have been able to describe the  parts  of
objects   like   a  doll,  snake,  and  glove  [Agin  1972].      The
representation is based on segmenting objects into parts connected at
joints.    Parts  are  described  by  a  volume  representation  with
arbitrary cross section defined along a space curve.  The  data  were
analyzed by techniques suggested by the representation.   Preliminary
segmentation was made into parts suggested by some primitives of  the
representation,  smoothly  varying,  locally  cylindrical parts.   An
iterative procedure defined an  approximation  to  the  axis  of  the
segment,  fit  circular  cross  sections  normal  to  the  axis, then
obtained an estimate of a global cross  section  function  which  was
then used to extend the axis and cross section as far as consistent.

A  study  of visual and depth ranging techniques has been carried out
which provides a background for choosing sensors and  interface,  and
making  cost estimates [Binford 1972,Earnest 1967].    An interesting
result is that the cost of a laser ranging system  such  as  ours  is
less than $1k given a tv system. We have maintained a calibrated hand
and vision system for several years [Sobel 1970], and have  developed
self-calibration   techniques  with  one  and  two  eyes  [Yakimovsky
unpublished, Hannah 1972, Gill 1972].

A system for understanding scenes of blocks  from  single  views  has
been  implemented  [Falk  1970]; it segments objects, matches against
internal  models,  predicts  appearance  from  its  assumptions,  and
searches  for  verification  and contradiction based on the predicted
image.    Support and spatial relations are also obtained.  There has
been  past  work  on  programs  to  obtain  line drawings as input to
recognition systems.  An earlier system was based on limited  context
of expecting continuation of edges at vertices and predicting missing
edges in certain expected configurations [Grape 1970]. A more  recent
approach has been to use models within the process of generating line
drawings, so that the most reasonable next  guess  can  be  made  and
context used intrinsically in the formation of line drawings.

VISUAL DEVELOPMENT FOR ASSEMBLY

In  the  pump  assembly,  visual tasks consisted of gross location of
large parts, then using the information to predict location of images
of  holes,  and monitoring of insertion into holes.   These tasks are
typical of the simple visual operations which we  will  implement  or
adapt.   We will greatly expand our efforts with visual feedback.  At
present, visual feedback techniques are limited to polyhera.  We will
improve image prediction techniques to predict images of objects with
curved edges.  We will develop a simple region analysis program which
assumes adequate contrast to locate the curved edges predicted within
a small window.   Color will  be  used  when  necessary.     We  will
implement  two-dimensional matching of boundary curves with predicted
curves.  These will be combined with our existing edge  operator  and
corner/line  operator.    We  will  maintain  a calibrated system and
improve calibration updating so that reliability is maintained  at  a
high level.

VISION RESEARCH

We  will improve the laser hardware so that it can be used widely and
extend our work with representation of complex  objects  using  depth
data.    We  are  able to make complete descriptions of objects which
consist of a single primitive segment, such as a torus, a snake or  a
cone.    The  programs  can segment dolls, toy horses, in intuitively
natural ways [Agin 1972]. It is necessary to improve our segmentation
process  in  order to proceed to joining primitive segments at joints
and make complete descriptions of complex  objects.    When  we  have
these  descriptions,  the computer will have symbolic internal models
of objects.   No recognition has yet been done, although we are in  a
position  to  recognize  those  objects which have only one primitive
segment, for which we can make complete descriptions. For recognition
of  more complex objects, once we have complete descriptions, we will
encode the basic properties of the  representation  within  a  visual
memory   scheme   which   allows   access   of  hypothesized  similar
three-dimensional shapes, with  associated  surface  information,  to
compare more closely with extensive verification.  We intend to apply
large parts of our programs for description and recognition of curved
objects  using  only  monocular intensity information. This is a much
harder problem, but within our representation,  shares  much  of  the
same  code,  and  relies  on  the  same  conceptual  basis  of  local
three-dimensional models.


We  will  continue  work  on  color region analysis which is based on
proximity rather than contiguity.  This  was  the  plan  outlined  in
previous  progress  reports, and has shown necessary by our work with
textured  scenes  [Bajcsy  1972].   Another  effort  combines  region
analysis  with  a decision theoretic approach based on a world model.
We anticipate that these modules will aid the  integrated  system  to
function in more complex environments than have been attempted in the
past.  There is a growing effort on navigation of vehicles in outdoor
scenes.    While  this  is  not  directly  relevant to the industrial
environment, it does  reflect  the  growing  involvement  in  complex
visual  tasks,  and will lead to further development of an integrated
visual system.

A strategy project is underway dealing with the blocks  world.    The
project  begins  from  the  idea  that robot vision cannot be studied
except as a part of intelligent behavior in general.  Visual  ability
is  FOR  something,  and  without  reasonable  expectations about the
world, the task of seeing is bound to be  extremely  difficult.    We
plan  to  implement  a  system which can do simple manipulation tasks
("pick up the red block", "put all the  cubes  in  the  box")  in  an
environment of plane-faced objects, and operating in a dialogue mode.
The system will have a good but imperfect world model all  the  time,
and the essence of its ability will be the constant use of this model
to understand situations and in particular  to  recover  from  errors
("Is  that  block  no longer there because the arm knocked it off?").
The main point of the project is to  find  a  good  organization  for
knowledge  about  the  simple world in question:  we expect that when
this is done the  complex  subroutines  of  current  vision  programs
(linefinders  etc)  will be found to be unnecessarily complex in that
they embody in an inefficient way at a low level, knowledge which our
system  will contain at a higher level. In part, this will be done by
expanding the facilities available.  A stereo vision module is  being
programmed,  using  line  drawings  and  integrating  stereo with the
segmentation and recognition processes.

We are at work on a program which exploits new features of  SAIL  for
dealing  with  multi-process  tasks in a problem-solving environment.
The aim is to construct a  driver  program  to  accomplish  a  simple
assembly task under somewhat uncertain conditions.  Making use of the
new language features, one can arrange for such  a  program  to  cope
with errors in the execution of tasks - e.g. to recover from dropping
things, breaking things, and further to  try  several  different  but
possibly  cooperative  methods for solving a problem.  It is intended
that this program will  have  its  own  vision  procedures  specially
adapted  for  finding  tools,  e.g. wrenches, screwdrivers, etc., and
parts, e.g. nuts and bolts. An  interpreter  is  being  developed  to
allow flexible description of the task by the user.

MANIPULATOR DEVELOPMENT

Manipulator   research  began  at  Stanford  Artificial  Intelligence
Laboratory  in  1965  with  the  acquisition  and  programming  of  a
prototype  Rancho Orthotic Arm.  A later version of this arm was used
in vision directed block stacking programs.

Our present arm, the result of a continuing design project,  replaced
the  Rancho Arm in 1970. This arm like its predecessor was controlled
by a digital servo program running under the time  sharing  computer.
The new arm was used in the "Instant Insanity" demonstration in 1971.
A second arm of the same type,  with  only  minor  modifications,  is
currently  being interfaced to the computer.   Both arms will share a
common work space and will  be  able  to  be  used  individually,  or
together for two handed tasks.

Manipulator  research  moves  ahead  simultaneously  on three fronts:
control, primitives and devices.      Tasks are  translated  into  an
existing  hand  language and where the task cannot be accomplished in
terms of existing primitives, new  primitives  are  formulated  in  a
consistent  manner.    When  a new primative is formulated, real time
routines are developed to perform the action.  This  also  leads,  in
many  cases,  to  the  development of new hardware.       Also as new
developments occur in hardware design, existing  real  time  routines
are either re-written or modified.

Research is now concentrating on the following areas:

Strain gauge instrumentation of the wrist, in order to allow for more
sensitive interaction of the hand with  a  task.    High  resolution,
high  sensitivity  touch sensors, to increase tactile recognition and
control abilities.     These developments will lead in  turn  to  new
control concepts.

Development  of  tools  for the hand. These tools can be instrumented
such that the computer can feel and or see at the end  of  the  tool.
This  should  be  a very important area of research as it goes beyond
present human capabilities.

Two handed arm control, the planning and execution of tasks requiring
the  coordinated  motion of both arms. This will require an extension
of the existing servo program and  the  analysis  of  synchronization
problems.  The  development  of collision avoiders, so that arms will
not collide with other objects and with each other.
Modification of  the  existing  arm  design  to  provide  for  better
incremental motions, more degrees of freedom and a more rugged design
suitable for industrial use.   Development of arm  and  eye  computer
interfaces.    These  contain  synchronized analog/digital converters
for input and current controlled drivers for output.

The development of new hands is expected as more  complex  tasks  are
attempted.    At present, with only one hand, we have been performing
the positioning type of  hand  actions.    When  the  second  arm  is
operational we will be able to perform holding and pulling actions as
well.

	D.  SYSTEM REQUIREMENTS FOR ADVANCED AUTOMATION

A key element in the development of any large programming  effort  is
the  software  support.   There has been continual effort along these
lines at the Stanford Artificial  Intelligence  Laboratory  and  many
useful  ideas have been developed.  We propose to extend the research
along two separate lines:  support for research and  system  software
for  operating  automated systems.  We will briefly describe our past
efforts in this area and what we propose to undertake.

The Stanford Artificial  Intelligence  Laboratory  has  pioneered  in
several  areas  of system programming, including timesharing systems,
interactive graphics, and programming languages.

A great deal of additional effort has gone  into  direct  support  of
hand-eye  research.    Very  early,  we established a set of standard
formats and library routines [Pingle 72a].  A  programming  language,
SAIL, was implemented in 1968.  The language incorporates special

features  for  large real-world-oriented problem solving systems
and is currently in use at a number of  Artificial  Intelligence  and
other laboratories.

As  we began to assemble larger and more sophisticated collections of
programs, we felt a need  for  flexible  mechanisms  for  cooperating
sequential  processes.  The resulting monitor and language features [
Feldman & Sproull 1971]  have  worked  well  for  us  and  have  been
influential   on  other  projects.     Recently,  we  have  added  an
additional  set  of   features   to   SAIL[FJCC   ]   to   facilitate
non-deterministic   and   event-directed   programming.    The  early
reactions to this work, both within the laboratory  and  without  has
been very encouraging.


A major share of the programming research effort will be concentrated
on developing a programming system for automated assembly.  This will
combine ideas  from  our  past  work  on  languages,  representation,
computer  graphics and arm control.  We view this task as a branch of
the larger effort on automatic programming being undertaken  in  this
laboratory aad elsewhere.